#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
from app import config


# 分页模块
def paginates(request, queryset):
    try:
        # 获取分页， 如果没有 默认为1
        page = int(request.args.get('page', default=1))
        per_page = int(request.args.get('limit', default=config.limit))
    except Exception as errors:
        # 如果有异常值， 直接赋值为1
        page = 1
        per_page = config.limit
    # 获取get请求传过来以多少条数据分页的参数, 默认显示多少条
    # flask-sqlalchemy 分页,  paginate(页码, 分页数量, 打印的错误日志)
    paginate = queryset.paginate(page, per_page, error_out=False)
    # 如果大于分页长度 或者小于0， 分页就直接从第1行开始
    if page > paginate.pages or page <= 0:
        paginate = queryset.paginate(1, per_page, error_out=False)

    # 导航栏分页  1-11
    total = paginate.pages
    if total > 11:
        if page - 5 < 1:
            page_range = range(1, 12)
        elif page + 6 > total:
            page_range = range(total - 10, total + 1)
        else:
            page_range = range(page - 5, page + 6)
    else:
        # print(paginate.page_range)  # flask 好像没有
        # 从1开始， 循环的时候是从1开始 2 不会输出
        page_range = range(1, total + 1)
    # layui 用page_range无用
    return paginate, page_range
